<?php

require_once('basico/start.php');
require_once('desconto2d/class/Premio.php');
require_once('desconto2d/class/Cliente.php');
require_once('desconto2d/class/Cupom.php');

$db = $GLOBALS['connectionDefault'];
$resposta = new Resposta();
$logger = Logger::getInstance();

$id_cliente = Cliente::getIdClienteByUsuario($_SESSION['id_usuario']);
$cupom = Cupom::getCupom($_GET['c']);
 
if($cupom['erro']){
	$resposta->setUseErrorMessage(true);
	$resposta->redirect($confirm);
}

$id_cupom = $cupom['id_cupom']; 
$table = 'voucher';
$idFieldLabel = 'id_'.$table;
$idField = $_POST[$idFieldLabel];

$fields['id_cupom'] = $id_cupom;
$fields['id_cliente'] = $id_cliente;
$fields['disponivel'] = 1;
$fields['id_premio'] = Premio::getPremio($id_cupom);
$fields['impresso'] = 0;
$fields['data_impressao'] = null;
$fields['data_marcacao_indisponivel'] = null;
$fields['id_indisponibilidade_tipo'] = null;

$fields[$idFieldLabel] = $idField;

if($idField)$update = true;

$confirm = $db->update('cupom', array('utilizado'=>1), array('id_cupom'=>$id_cupom));

if(!$update){
	
	$confirm = $db->persist($table, $fields, 'insert');
	if($confirm){
		$confirm = $db->update('cupom', array('utilizado'=>1), array('id_cupom'=>$id_cupom));
		if($confirm)Auditoria::gravaLog('Insert', sprintf('Voucher:%s;Cliente:%s', $confirm, $fields['id_cliente']), $table, $confirm);
	}
	
}else{
	$confirm = $db->update($table, $fields, array($idFieldLabel=>$idField));
	if($confirm){
		$confirm = $db->update('cupom', array('utilizado'=>1), array('id_cupom'=>$id_cupom));
		if($confirm)Auditoria::gravaLog('Update', sprintf('Voucher:%s;Cliente:%s', $confirm, $fields['id_cliente']), $table, $idField);
	}
}

$resposta->redirect($confirm);